Control of CNC machine tools

ABSTRACT

A multi-axis computer numerically controlled (CNC) machine tool is provided in which a cutting tool (7) is movable relative to a workpiece (6) by means of a number of linear and rotary joints (J 1  to J 3 ) under the control of a programmable control unit (1). The machine is programmed with a plurality of principal programmable axes, called &#34;hard&#34; axes (X, Z and B), and with at least one synthesized additional programmable axis or &#34;soft&#34; axis (V) which enables the cutting tool (7) to be moved linearly in the direction of the soft axis (V) without requiring a specific joint for that purpose. The synthesized &#34;soft&#34; axis is a non-collinear, partially redundant axis which increases the number of programmable degrees of freedom to a greater number than the machine degrees of freedom ie: the number of non-collinear joints. The principle of synthesizing &#34;soft&#34; axes may be extended to CNC machine tools having four or more principal hard axes, for instance, to produce a 5-joint CNC machine tool which has the flexibility of a conventional 7- or 8-joint machine tool.

This invention relates to multi-axis computer numerically controlled(CNC) machine tools in which a cutting tool is movable relative to aworkpiece under the control of programmable control means including acomputer program known as a "part program".

As used herein the term "cutting tool" refers to the portion of themachine that is designed to act upon the workpiece to perform thedesired task. In the context of this invention, the cutting tool is notrestricted to standard turning or milling cutters, but also includes allmechanical, electronic and/or electro-mechanical devices used to modifythe shape and/or properties of the workpiece. Examples of cutting toolsinclude: end-mills, turning tools, grinding wheels, laser cutting beams,plasma beams and punch tools.

Multi-axis CNC machine tools conventionally include a plurality ofmovable machine members and a plurality of controllable joints movableto cause the cutting tool to move relative to a fixed frame of reference(eg. the machine base). The workpiece may be mounted on workpiecemounting means which is fixed relative to the machine base.Alternatively, the workpiece may be mounted on workpiece mounting meansconnected to the machine base by further movable machine members andcontrollable joints.

The joints of a multi-axis machine tool may include prismatic (linear)joints which enable a machine part to be moved in a linear direction androtary joints which enable a machine part to be rotated about a rotaryaxis. The programmable control means of a multi-axis CNC machine tool isconventionally programmed to control the position and orientation of thejoints to cause the cutting tool to occupy a desired position andorientation relative to the workpiece mounting means.

The term multi- or multiple axis control, when used in the context ofCNC machine tools, conventionally refers to a form of CNC control inwhich the machine may be programmed to control one or more jointsconcurrently. The development of multi-axis and multifunction machinetools in conjunction with the development of sophisticated computercontrolled operations has facilitated the emergence of a generation ofvery high speed precision machine tools capable of complex multi-stepoperations from one machine.

In programming a CNC machine tool with multi-axis control a plurality ofprogrammable positioning directions or "axes" are chosen whichconstitute the minimum number of axes required to position the cuttingtool relative to the workpiece. These programmable axes, referred toherein as principal programmable axes may include up to three linearorthogonal axes and one or more rotary axes.

Conventionally, a CNC machine tool has a number of programmable axes andis controlled by part program which serially instructs the machine toperform a sequential series of discrete operations in a predetermined orprogrammed sequence.

In simple CNC machine tools, the number of joints of the machine isoften equal to the number of programmable axes. For instance, a fouraxis machine tool may have three orthogonal linear or prismatic jointsproviding control of movement in three orthogonal directions (X, Y andZ), and one rotary joint providing rotation about a rotary axis A. Inprogramming such a four axis machine, the directions X, Y and Z mayconveniently be chosen as programmable linear axes and the axis A chosenas a programmable rotary axis.

U.S. Pat. No. 4,591,771 discloses a numerical control system for a fiveaxis CNC machine tool of the type having three linear or prismaticjoints controlled by servo motors which provide relative movementbetween the tool and the workpiece in the directions of the X, Y and Zaxes of an orthogonal co-ordinate system and two rotary jointscontrolled by servo motors which provide rotary movement in thedirections of B and C axes of a spherical co-ordinate system. Inprogramming the five axis machine of U.S. Pat. No. 4,591,771 theorthogonal axes X, Y and Z and the rotary axes B and C may beconveniently chosen as programmable axes.

The five axis CNC machine of U.S. Pat. No. 4,591,771 also includes amanual pulse generator which allows the machine tool to be movedmanually in the axial direction A of the machine tool relative to theworkpiece to increase or decrease the cutting amount.

Conventional four or five axis CNC machines, such as the five axismachine of U.S. Pat. No. 4,591,771, can thus be programmed to carry outsimple linear movements of the machine tools using the programmablelinear axes (X, Y and Z) and to carry out rotary movements in thedirections of the programmable rotary axes (eg. B and C) which arelocated by rotary joints. However, such conventional CNC machine toolscannot automatically move along or contour around axes other than thefour or five programmable axes without more complicated programmingusing a combination of the programmable axes or unless the other axesare located by means of further prismatic or rotary joints under thecontrol of the part program.

It is therefore desirable to provide a method of operating a multi-axisCNC machine tool wherein the cutting tool can move automatically alongor contour around an axis without requiring physical location of thataxis by means of a prismatic or rotary joint.

It is also desirable to provide a multi-axis CNC tool having a certainnumber of joints and which is able to control movement of a cutting toolautomatically relative to a workpiece in a plurality of linear axisdirections and around at least one rotary axis direction withoutrequiring at least as many joints as the number of linear and rotaryaxis directions.

In accordance with one aspect of the present invention there is provideda method of operating a multi-axis CNC machine tool having workpiecemounting means for mounting a workpiece, a cutting tool operable uponsaid workpiece, a plurality of machine members and a plurality ofcontrollable joint means movable under the control of a program to causerelative movement between the cutting tool and the workpiece mountingmeans,

said method comprising the steps of programming the machine with aplurality of principal programmable positioning directions or axes whichaxes constitute the minimum number of axes required to position thecutting tool relative to the workpiece mounting means, and programmingthe machine to control movement of the joint means in accordance with apart program so as to cause the cutting tool to move along a programmedpath relative to the workpiece mounting means,

the method being characterized by the step of programming the machine tosynthesize at least one additional programmable axis whereby relativemovement of said cutting tool and said workpiece mounting means isautomatically controllable in relation to said additional programmableaxis in accordance with said part program without physical location ofsaid additional programmable axis by joint means.

In accordance with another aspect of the invention there is provided amulti-axis CNC machine tool comprising:

workpiece mounting means for mounting a workpiece thereon;

a cutting tool movable relative to the workpiece mounting means;

a plurality of machine members; and

a plurality of controllable joint means movable to cause the relativemovement between said cutting tool and said workpiece mounting means;and

programmable control means programmed to control automatically theposition and orientation of said plurality of joint means in accordancewith a part program;

the machine tool having a plurality of principal programmablepositioning directions or axes which constitute the minimum number ofprogrammable axes required to position and orientate the cutting toolrelative to the workpiece mounting means;

characterized in that the machine is programmed to synthesize at leastone additional programmable axis, whereby movement of said cutting toolor said workpiece mounting means in relation to said at least oneadditional programmable axis is automatically controllable in accordancewith said part program without physical location of said at least onesynthesized additional programmable axis by joint means.

The CNC machine may be programmed to synthesize more than one additionalprogrammable axis, allowing movement of the cutting tool or theworkpiece in relation to each one of the additional programmable axes tobe controlled without physical location of said synthesized additionalprogrammable axes. The or each synthesized additional programmable axismay be hereinafter referred to as a "soft axis", with the principalprogrammable axes being referred to as "principal hard axes".

Preferably, at least one of said synthesized additional programmableaxes or "soft" axes is non-collinear with the principal programmableaxes. Hitherto, in programming conventional multi-axis machine tools,such non-collinear axes would be regarded as partially redundant axessince it is possible to describe any required position or orientation ofthe cutting tool relative to the workpiece in terms of co-ordinates ofthe principal "hard" axes. A soft axis which is collinear with one ofthe other soft axes may be regarded as a fully redundant axis, althoughit will be appreciated that the present invention in its broadest formincludes the synthesis by electronic or computational means of any"soft" axis, whether it is partially redundant or fully redundant.

Soft axes are fully programmable axes capable of simulating normal axisoperations such as: interpolation, contouring, splicing, offsetting,jogging, manual positioning and live offset positioning.

Conventionally, at least one of said synthesized additional programmableaxes or soft axes is arranged to pass through a part of the cutting tooland to remain fixed relative to the cutting tool. The synthesis of sucha soft axis enables the machine to be programmed to control linearmovement of a rotatable cutting tool either along a soft axis coincidingwith the axis of rotation of the cutting tool or to control the cuttingtool to contour around a soft rotary axis, for instance an axis passingthrough a grinding point at the edge of the cutting tool.

It will be appreciated that the synthesis of soft axes can increase thenumber of programmable axes to exceed the total number of joints in amulti-axis CNC machine. In this case it is possible, for instance, toprovide a four or five axis machine tool having four or five jointswhich can function as effectively as conventional machine tools havingsix or more joints.

Some preferred embodiments of the present invention will now bedescribed, by way of example only, with reference to the accompanyingdrawings in which:

FIG. 1 is a schematic diagram of a simple prior art CNC machine toolhaving four "hard" axes and four joints;

FIG. 2 is a schematic diagram of a simple CNC machine tool in accordancewith the invention having three principal "hard" axes, a partlyredundant "soft" axis and three joints;

FIG. 3 is a block diagram of a co-ordinate transform module for a CNCmachine tool in accordance with the invention having five principal"hard" axes, two "soft" axes and five joints;

FIG. 4 is a perspective view of the workpiece and grinding wheel of aCNC tool grinder having five principal "hard" axes, two "soft" axes andfive joints;

FIG. 5 is a perspective view showing the joint layout for the CNC toolgrinder of FIG. 4;

FIG. 6 is a perspective view of the workpiece and grinding wheel of aCNC cylindrical grinder having four principal "hard" axes, two "soft"axes and four joints;

FIG. 7 is a perspective view of the laser cutter of a CNC laser cuttingmachine tool having five principal "hard" axes, three "soft" axes andfive joints.

FIG. 8 is a perspective view of the workpiece and cutting tool of a CNCmilling machine having five principal "hard" axes, three "soft" axes andfive joints.

The principle of using synthesized partially redundant axes in a CNCmachine tool to reduce the number of joints required to move a cuttingtool may be described with reference to FIGS. 1 and 2 of the drawings.

The CNC machine tool illustrated schematically in FIG. 1 is a simple,conventional machine tool comprising a programmable control unit or PCU1, a trajectory interpolator 2, a position controller 4, a machine base5 having mounting means 8 for mounting a workpiece 6 thereon, arotatable cutting tool 7, a plurality of movable machine members L¹ toL³, a plurality of joints J¹ -J⁴ and a respective actuator 11 to 14associated with each joint J¹ -J⁴.

As shown schematically in FIG. 1, the first joint J¹ is a linear orprismatic joint forming a telescopic linkage between a part of themachine base 5 and the first machine member L¹ and providing movement ofmachine member L¹ relative to the base 5 in a horizontal direction X,the second joint J² is a linear or prismatic joint forming a telescopiclinkage between the first machine member L¹ and the second machinemember L², and providing relative linear movement between the first andsecond machine members L¹ and L² in a vertical direction Z, the thirdjoint J³ is a rotary joint between the second and third machine membersL² and L³ and providing angular movement of the third machine member L³relative to the second machine member L² about a rotary axis B, and thefourth joint J⁴ is a linear or prismatic joint forming a telescopiclinkage between the third machine member L³ and the head of the cuttingtool 7 providing linear movement of the cutting tool 7 relative to thethird machine member L³ in a direction V coinciding with the axis ofrotation of the rotatable cutting tool 7.

In conventional terms a machine tool such as that of FIG. 1 is oftenreferred to as a "four axis machine" because it has four joints J¹ toJ⁴. The machine is also considered to have four machine degrees offreedom (MDOF) because it has four non-collinear joint axes ordirections in which relative movement between adjacent machine membersor between the cutting tool and the third machine member may take place,ie: linear axes X, Z and V and rotary axis B. However, in the context ofthe present invention, the CNC machine tool of FIG. 1 is considered tohave three principal axes, known as principal "hard" axes, ie:orthogonal linear axes X and Z and rotary axis B. Linear axis V is knownas a partially redundant "hard" axis, since any change in linearposition of the cutting tool 7 in the V direction relative to theworkpiece 6 could be expressed in terms of the change in co-ordinates ofthe X and Z axes. Conventionally, in programming the CNC machine of FIG.1 to control movement of the cutting tool 7 in accordance with aprogrammed path, the program would define the relative positions of thejoints J¹ to J⁴ and the movable machine members M¹ to M³ relative to apoint of reference on the fixed workpiece known as the workpiecereference point in terms of coordinates from the X, Z and B principal"hard" axes and the partially redundant "hard axis" V. Thus, the numberof programming degrees of freedom (PDOF) in the machine of FIG. 1 isfour, equal to the number of machine degrees of freedom (MDOF), ie. thenumber of Joints.

The machine tool illustrated schematically in FIG. 2 is similar to thatof FIG. 1 and corresponding reference numerals have been applied tocorresponding parts. The machine tool of FIG. 2, however, differsphysically from that of FIG. 1 in that the third machine member L³, thefourth joint J⁴ and its associated actuator 14 have been omitted. Also,in contrast to FIG. 1, the machine tool of FIG. 2 includes a co-ordinatetransform module 3 and, by suitable programming of the PCU 1 and theco-ordinate transform module 3, is able to control movement of thecutting tool 7 relative to the workpiece reference point in the samelinear directions X, Z and V and about the same rotary axes B and C asthe machine tool of FIG. 1 despite the fact that there is no physicallocation of linear axis V by means of a joint since joint J⁴ has beenomitted.

In accordance with the present invention, the three joint machine ofFIG. 2 is able to position the cutting tool relative to the workpiece aseffectively as the four joint machine of FIG. 1 because the co-ordinatetransform module 3 is programmed to synthesize a partially redundant"soft" axis corresponding to linear axis V which passes through thecutting tool 7. It will be appreciated that linear movement of thecutting tool 7 in the direction V' is possible by appropriate actuationof prismatic joints J¹ and J² without physically locating the linearaxis V by means of a corresponding joint J⁴. Since the machine has onlythree joints, J¹, J², and J³ it only has three machine degrees offreedom (MDOF) but because an additional partially redundant "soft" axisis synthesized, the machine has four programming degrees of freedom(PDOF). In this manner, the three joint or three axis machine of FIG. 2can operate in the same way as the four joint machine of FIG. 1.

The manner in which a CNC machine tool is programmed to synthesize oneor more "soft" axes will be described with particular reference to FIG.3 which shows a co-ordinate transform module 3 of a machine having fivejoints J¹ to J⁵, five principal "hard" axes and two partially redundant"soft" axes. First, however, it is necessary to define various terms andsome axis classification rules as follows:

Definitions

Cutting Tool

The cutting tool is the portion of the machine that is designed to actupon a workpiece to perform the desired task. In the context of thispatent, the cutting tool is not restricted to standard turning ormilling cutters, but also includes all mechanical, electronic and/orelectro-mechanical devices used to modify the shape and/or properties ofthe workpiece. Examples of cutting tools include: end-mills, turningtools, grinding wheels, laser cutting beams, plasma beams and punchtools.

Workpiece

The workpiece is the part upon which useful work is done by the machinetool. The principal job of the machine tool is to modify a workpiece'sshape and/or properties.

Workpiece Reference Point (WRP)

The workpiece reference point (WRP) is a point of reference, logicallyattached to the workpiece. It is located as a fixed position relative tothe workpiece but this position may be programmed be means other thanusing axes.

Machine Member

A machine member is an essentially rigid mechanical structure of themachine tool or a combination of mechanical structures that result in amathematically constant link between 2 joints J^(n) and J^(n+1) orbetween the base of the machine and joint J¹ or between joint J^(N) andthe cutting tool (where N is the number of joints in the machine tool).

Last Machine Member

The last machine member is the machine member that attaches joint J^(N)to the cutting tool where N is the number of joints in the machine tool.

Joint

A mechanical linkage between two machine members. A joint is controlledby means of an actuator. The position of a joint describes the kinematicrelationship between one machine member and another. In mostimplementations, each joint position maps directly and simply to theposition of one actuator. In some implementations, a simple N to Nmapping occurs between joint positions and actuator positions however,this is rare for most normal machine tools.

Actuator

Active mechanism used to power a joint. Typical actuators are electricalservo motors, pneumatic and hydraulic pistons.

Tool Reference Point (TRP)

The tool reference point (TRP) is a point of reference, logicallyattached to the last machine member of the machine tool. It is locatedas a fixed position relative to the last machine member but thisposition may be programmed be means other than using axes.

Rotating Cutting Tool

A rotating cutting tool is a cutting tool designed to spin about aparticular axis, whereby useful work is done by the swept volume of thecutting tool. This implies that the orientation of the cutting tool islimited to 2 degrees of freedom; the third degree of freedom (rotationabout the spinning axis) has no meaning.

Spacial Degrees of Freedom (SDOF)

A machine tool can be defined as having SDOF spacial degrees of freedomand ODOF orientation degrees of freedom. The spacial degrees of freedom(SDOF) of a machine tool is an integral number that represents thefundamental space that the machine tool is designed to operate in. Thisspace is called SDOF-Dimensional Euclidean Space which may be defined asa rectangular coordinate system with SDOF euclidean dimensions embeddedin the workpiece at the workpiece reference point. This reference frameand its corresponding euclidean space are used herein as the base framewhen referencing the position and orientation of the machine tool.

The number of SDOF will be one of:

0. For a purely rotational machine (eg: carousal).

1. For a fundamentally 1 dimensional machine (eg: conveyor belt).

2. For a fundamentally 2 dimensional machine (eg: conventional lathe).

3. For a fundamentally 3 dimensional machine conventional knee mill).

This value must be viewed with reference to the orientation degrees offreedom (ODOF).

SDOF is defined as the minimum number of Euclidean space dimensionsrequired to fully describe the set of fundamental axis direction vectorsfor all linear axes and the set of fundamental axis direction vectorsfor all rotary axes for all axis vector values within the workingenvelope of the machine tool.

ie: If the position of the tool reference point relative to theworkpiece reference point is always constrained in 1 dimension thenSDOF=1; in 2 dimensions then SDOF=2; in 3 dimensions SDOF=3.

Orientation Degrees of Freedom (ODOF)

The orientation degrees of freedom (ODOF) of a machine tool is anintegral number that represents the fundamental degrees of freedom thatthe orientation of the cutting tool may make with respect to theworkpiece.

More specifically, given that the tool reference point is in contactwith the workpiece reference point, ODOF is the number of differentdirection vectors D^(n) (maximum of 3) (each of which is orthogonal toall other D^(m)) about which the cutting tool may be programmed torotate (using the rotary axes and linear axes) for all axis vectorvalues within the working envelope of the machine tool for which thetool reference point remains in contact with the workpiece referencepoint.

This definition does not imply that the cutting tool cannot be rotatedabout more than ODOF direction axes over the entire working envelope. Itrefers to the number of degrees of rotary freedom given a fixed positionof the tool reference point with respect to the workpiece referencepoint. At a different position (or in a different programmedconfiguration) the cutting tool may rotate about a different directionvector.

The number of ODOF will be one of:

0. For machines where the cutting tool cannot be pivoted with respect tothe workpiece.

1. For machines where the cutting tool can be pivoted about only onedirection vector with respect to the workpiece (eg: a 4 axis knee mill;with rotary workpiece axis).

2. For machines where the cutting tool can be pivoted about twodirection vectors with respect to the workpiece (eg: a conventional 5axis mill).

3. For machines where the cutting tool can be pivoted about threedirection vectors with respect to the workpiece (eg: a conventional 6axis robot). Note: a 5 axis mill has ODOF=2 even if it is fitted with arotary workpiece axis as this axis is not orthogonal to the 2 toolpivoting axes. To create a mill with ODOF=3, a rotary axis parallel tothe normal tool spindle rotation direction would need to be provided(which is capable of performing useful work with normal tooling).

NOTES:

1. A rotary axis designed to rotate the workpiece can not be used in thecalculation of ODOF and SDOF. It is counted either as an axis used toeffect principal positioning of the tool reference point with respect tothe workpiece reference point (eg: theta in a cylindrical coordinateposition system) or as an axis used to effect principal orientation ofthe tool reference point with respect to the workpiece reference point.

2. A machine with a rotating tool may have a maximum ODOF=2 since therecan be no distinction of tool orientation along the axis of toolrotation.

Axis

In the context of this patent, an axis is a "programmable" positioningdirection. The principal means of programming a CNC to position themachine tool to a particular position is to specify the destinationpoint as a set of axis positions, Typical names for axes are: X, Y, Z,A, B, C, U, X1, X2, A3 etc. Axes may be either linear axes or rotaryaxes. For descriptive purposes in this patent, axes are represented asA^(n) where n represents the location of the axis in the axis vector.

Axis Position

The axis position of an axis (say A^(n)) is the value that the axis hasbeen programmed to reach after all programmed transformations have beenaccounted for.

Axis Vector

An axis vector (A) is a vectorial representation of the position of themachine tool expressed as a column matrix (M+1×1) where each element ofthe vector represents the axis position of one of the M axes of themachine tool. The last element in the vector is the value 1. This isused for homogeneity of the vector: ##EQU1## where: a^(i) represents theposition of axis i. NOTE: Whilst A is referred to as an axis vector, itbears no direct relationship to a normal 3-dimensional Euclidean spacevector.

Position Matrix

The position matrix (P) is a representation that combines the positionof the tool reference point (TRP) in SDOF-dimensional euclidean space(with respect to the workpiece reference point (WRP)) with theorientation of the cutting tool (with respect to SDOF-dimensionaleuclidean space). P can be represented as follows: ##EQU2## where: N iscalled the normal orientation vector (see below).

O is called the orient orientation vector (see below).

A is called the approach orientation vector (see below).

P is called the position vector (see below).

The vectors N, O and A described above are called orientation vectors.They form an orthogonal set of unit vectors, whose values (inSDOF-dimensional euclidean space) represent the orientation of thecutting tool with respect to the workpiece. This set of vectors canencompass up to 3 orientation degrees of freedom (which is the maximumallowed). These vectors can be defined as follows: ##EQU3## where: N_(x)is the i axis position of the vector N in SDOF-dimensional euclideanspace.

N_(y) is the j axis position of the vector N in SDOF-dimensionaleuclidean space.

N_(z) is the k axis position of the vector N in SDOF-dimensionaleuclidean space.

similarly for O_(x), O_(y), O_(z), A_(x), A_(y) and A_(z).

Axis Matrix

The axis matrix (A) is a symbolic 4×4 matrix that defines the kinematicrelationship between the position matrix (P) and the axis position ofeach of the axes (a^(n)); which are the elements of the axis vector (A).The elements of A are expressed symbolically in terms of a^(n).sub.(forn-1 . . . N) where N is the number of axes in the machine tool. A isdefined as: ##EQU4## where: f_(ij) (A) is a function of the componentsof A (a^(x), a² . . . a^(N)) .

A satisfies the following equation:

    P(A)-A(A)

for all values of A within the working envelope of the machine tool.

Linear Axis

An axis is a linear axis if, for all current axis vector (A') valueswithin the working envelope of the machine tool, the following equationsare true: ##EQU5## where: a^(n) is the component direction of the axisvector corresponding to A^(n).

Δa^(n) is a scalar representing the displacement of axis A^(n) from theaxis position at A'.

A' is the current axis vector.

A is the axis matrix.

P is the position matrix.

P is the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

K is a scalar constant

for all A' and all Δa^(n).

Rotary Axis

A rotary axis is an axis that causes the orientation of the cutting tool(with respect to SDOF-dimensional euclidean space) to change. A rotaryaxis satisfies at least one of the following criteria: ##EQU6## where:a^(n) is the component rotation of the axis vector corresponding toA^(n).

A' is the current axis vector.

A is the axis matrix.

P is the position matrix.

P is the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

for all A' within the working envelope of the machine tool.

Collinear Axes (linear)

Two or more linear axes are defined as being collinear if they satisfythe following criteria:

The fundamental axis direction vectors (D^(n) _(a) (A') of the axes forma collinear set of vectors for all axis vector values within the workingenvelope of the machine tool. ie: A linear axis (say A^(n)) is collinearto another linear axis (A^(m)) if the direction of movement of A^(n)always coincides with the direction of movement of A^(m) regardless ofthe position of the machine tool. This is expressed in the followingequation:

    D.sub.a.sup.n (A.sup.l)=K.D.sub.a.sup.m (A.sup.l)

where:

K is a scalar constant.

for all current axis vector values A' within the working envelope of themachine tool.

A third axis (A^(p)) is collinear to A^(n) if it is collinear to A^(n).Note: This definition does not imply that the fundamental axis directionvectors of a collinear axis set are constant. It only relates to therelative linear dependence of the set.

Current Axis Vector

The current axis vector (A') is the value of the axis vector A at thecurrent position of the machine tool.

Fundamental Axis Direction Vector

The fundamental axis direction vector (D_(a) ^(n) (A')) for a linearaxis A^(n) is defined as the vector that relates the rate of change ofthe position of the tool reference point (with respect to the workpiecereference point) in SDOF-dimensional euclidean space to the rate ofchange in the position of A^(n) at the current axis vector. It isrepresented by the solution of the partial differential equation at thecurrent axis vector: ##EQU7## where: a^(n) is the component direction ofthe axis vector corresponding to A^(n).

A' is the current axis vector.

A is the axis matrix.

P is the position matrix.

P is the position vector (see the definition of position matrix)

N, O and A are the orientation vectors (see the definition of positionmatrix).

Collinear Axes (rotary)

Two or more rotary axes are defined as being collinear if they satisfythe following criteria:

The fundamental axis rotation vectors (R_(a) ^(n) (A')) of the axes forma collinear set of vectors for all axis vector values within the workingenvelope of the machine tool and the fundamental axis rotation originvectors (V_(a) ^(n) (A')) of the axes are identical for all axis vectorvalues within the working envelope of the machine tool. ie: A rotaryaxis (say A^(n)) is collinear to another rotary axis (A^(m)) if thedirection of rotation of A^(n) always coincides with the direction ofrotation of A^(m) and the origin of rotation of A^(n) is always the sameas the origin of rotation of A^(m) regardless of the position of themachine tool. This is expressed in the following equations:

    R.sub.a.sup.n (A.sup.l)=K.R.sub.a.sup.m (A.sup.l)

    V.sub.a.sup.n (A.sup.l)=V.sub.a.sup.m (A.sup.l)

where:

K is the scalar constant 1 or -1.

for all current axis vector values A' within the working envelope of themachine tool,

A third axis (A^(p)) is collinear to A^(m) if it is collinear to A^(n),Note: This definition does not imply that the fundamental axis rotationvectors or fundamental axis rotation origin vectors of a collinear axisset are constant, It only relates to the relative linear dependence andequality of the set.

Fundamental Axis Rotation Origin Vector

The fundamental axis rotation origin vector (V_(a) ^(n) (A')) for therotary axis A^(n) defines the instantaneous location of the axis ofrotation of A^(n) in SDOF-dimensional euclidean space at the currentaxis vector (A'). It is defined by the following equation: ##EQU8##where: a^(n) is the component rotation of the axis vector correspondingto A^(n),

A' is the current axis vector,

A is the axis matrix,

P is the position matrix,

P is the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

R_(a) ^(n) (A') is the axis rotation vector for A^(n).

Fundamental Axis Rotation Vector The fundamental axis rotation-vector(R_(a) ^(n) (A')) for the rotary axis A^(n) is defined as the unitvector that relates the rate of change in the orientation vectors (N, Oand A) (see the definition of position matrix) to the rate of change ofthe axis position of A^(n) at the current axis vector. It defines theinstantaneous direction of rotation of A^(n) about which, a change inthe axis position a^(n) will cause the cutting tool to rotate. R_(a)^(n) (A') is defined by following equation set: ##EQU9## where: a^(n) isthe component rotation of the axis vector corresponding to A^(n).

A' is the current axis vector.

A is the axis matrix.

P is the position matrix.

P is the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

K_(i) are scalar constants.

Collinear Axis Set

A set of axes, each of which is collinear to every other axis in theset. There may be multiple collinear axis sets for a particular machinetool.

Non-Collinear Axis

A non-collinear axis is an axis that cannot be placed in any collinearsets of axes.

Programming Degrees of Freedom

In the context of this patent, the programming degrees of freedom (PDOF)of a machine tool is an integral number that represents the number ofnon-collinear axes plus the number of collinear axis sets.

Working Envelope

The working envelope is defined as the complete family of values thatthe position matrix (P) is able to acquire for the machine tool. Thisfamily of values will be dependent on the spacial degrees of freedom andthe orientation degrees of freedom and any limits applied to axispositions and joint positions.

Joint Position

For prismatic joints, the joint position (j^(n)) is expressed as alinear displacement in units of millimetres. For rotary joints, thejoint position (j^(n)) is expressed as an angular position in units ofradians.

The units expressed above are for definition to correspond to theequations stated. Real applications may have units different to these(eg: encoder counts). Appropriate scaling of the equations is then inorder.

Joint Vector

A joint vector (J) is a vectorial representation of the position of themachine tool expressed as a column matrix (N+1×1) where each element ofthe vector represents the joint position of one of the N joints of themachine tool. The last element in the vector is the value 1. This isused for homogeneity of the vector: ##EQU10## where: j¹ represents theposition of joint i.

NOTE: Whilst J is referred to as a joint vector, it bears no directrelationship to a normal 3-dimensional Euclidean space vector.

Current Joint Vector

The current joint vector (J') is the value of the joint vector J at thecurrent position of the machine tool.

Joint Matrix

The joint matrix (J) is a symbolic 4×4 matrix that defines the kinematicrelationship between the position matrix (P) and the joint position ofeach of the joints (j^(n)); which are the elements of the joint vector(J). The elements of J are expressed symbolically in terms ofj^(n).sub.(for n-1 . . . N) where N is the number of joints in themachine tool. J is defined as: ##EQU11## where: f_(ij) (J) is a functionof the components of J (j¹, j² . . . j^(N)).

J satisfies the following equation:

    P(J)=J(J)

for all values of J within the working envelope of the machine tool.

Prismatic Joint

A joint is a prismatic joint if, for all current joint vector (J')values within the working envelope of the machine tool, the followingequations are true: ##EQU12## where: j^(n) is the component direction ofthe joint vector corresponding to J^(n).

Δj^(n) is a scalar representing the displacement of joint J^(n) from thejoint position at J'.

J' is the current joint vector.

J is the joint matrix.

P is the position matrix.

P is the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

K is a scalar constant.

for all J' and all Δj^(n).

Joint Displacement Vector

The joint displacement vector (D^(n) (J')) for the prismatic joint J^(n)is defined as the vector that relates the rate of change of the positionof the tool reference point in SDOF-dimensional euclidean space (withrespect to the workpiece reference point) to the rate of change in theposition of J^(n) at the current joint vector. It is represented by thesolution of the partial differential equation at the current jointvector: ##EQU13## where: j^(n) is the component direction of Jcorresponding to J^(n).

J' is the current joint vector.

J is the joint matrix.

P is the position matrix.

P is the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

Rotary Joint

A rotary joint is a joint that causes the orientation of the cuttingtool (with respect to SDOF-dimensional euclidean space) to change. Arotary joint satisfies at least one of the following criteria: ##EQU14##where: j^(n) is the component rotation of the joint vector correspondingto J^(n).

J' is the current joint vector.

J is the joint matrix.

P is the position matrix.

P is the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

for all J' within the working envelope of the machine tool.

Joint Rotation Vector

The joint rotation vector (R^(n) (J')) for the rotary joint J^(n) isdefined as the unit vector that relates the rate of change in theorientation vectors (N, O and A) (see the definition of position matrix)to the rate of change of the joint position of J^(n) at the currentjoint vector. It defines the instantaneous direction of rotation ofJ^(n) about which, a change in the joint position j^(n) will cause thecutting tool to rotate. R^(n) (J') is defined by following equation set:##EQU15## where: j^(n) is the component rotation of J corresponding toJ^(n).

J' is the current joint vector.

J is the joint matrix.

P is the position matrix.

P is the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

K_(i) are scalar constants.

Joint Rotation Origin Vector

The joint rotation origin vector (V^(n) (J')) for the rotary joint J^(n)defines the instantaneous location of the axis of rotation of J^(n) inSDOF-dimensional euclidean space at the current joint vector (J'). It isdefined by the following equation: ##EQU16## where: j^(n) is thecomponent rotation of J corresponding to J^(n).

J' is the current joint vector.

J is the joint matrix.

P is the position matrix.

P the position vector (see the definition of position matrix).

N, O and A are the orientation vectors (see the definition of positionmatrix).

R^(n) (J') is the joint rotation vector for J^(n).

Collinear Joints (prismatic)

Two or more prismatic joints are defined as being collinear if theysatisfy the following criteria:

The joint displacement vectors (D^(n) (J')) of the joints form acollinear set of vectors for all joint vector values within the workingenvelope of the machine tool. ie: A prismatic joint (say J^(n)) iscollinear to another prismatic joint (J^(m)) if the direction ofmovement of J^(n) always coincides with the direction of movement ofJ^(m) regardless of the position of the machine tool. This is expressedin the following equation:

    D.sup.n (J.sup.l)=K.D.sup.m (J.sup.l)

where: K is a scalar constant. for all current joint vector values J'within the working envelope of the machine tool.

A third joint (J^(P)) is collinear to J^(m) if it is collinear to J^(n).Note: This definition does not imply that the joint displacement vectorsof a collinear joint set are constant. It only relates to the relativelinear dependence of the set.

Collinear Joints (rotary)

Two or more rotary joints are defined as being collinear if they satisfythe following criteria:

The joint rotation vectors (R^(n) (J')) of the joints form a collinearset of vectors for all joint vector values within the working envelopeof the machine tool and the joint rotation origin vectors (V^(n) (J'))of the joints are identical for all joint vector values within theworking envelope of the machine tool. ie: A rotary joint (say J^(n)) iscollinear to another rotary joint (J^(m)) if the direction of rotationof J^(n) always coincides with the direction of rotation of J^(n) andthe origin of rotation of J^(n) is always the same as the origin ofrotation of J^(n) regardless of the position of the machine tool. Thisis expressed in the following equations:

    R.sup.n (J.sup.l)=K.R.sup.m (J.sup.l)

    V.sup.n (J.sup.l)=V.sup.m (J.sup.l)

where: K is the scalar constant 1 or -1. for all current joint vectorvalues J' within the working envelope of the machine tool.

A third joint (J^(P)) is collinear to J^(m) if it is collinear to J^(n).Note: This definition does not imply that the joint rotation vectors orjoint rotation origin vectors of a collinear joint set are constant. Itonly relates to the relative linear dependence and equality of the set.

Collinear Joint Set

A set of joints, each of which is collinear to every other joint in theset. There may be multiple collinear joint sets for a particular machinetool.

Non-Collinear Joint

A non-collinear joint is a joint that cannot be placed in any collinearsets of joints.

Fully Redundant Joint

A fully redundant joint is a joint that can be included in a collinearset of joints. The inclusion of a fully redundant joint in a CNC doesnot add to the machine degrees of freedom (MDOF).

Machine Degrees of Freedom

In the context of this patent, the machine degrees of freedom (MDOF) ofa machine tool is an integral number that represents the number ofnon-collinear joints plus the number of collinear joint sets.

Axis Classification Rules

A CNC machine tool will have at least (SDOF+ODOF) axes. These axes canbe classified as follows:

Principal Hard Axes

A selection of the machine tool's axes is made such that this set ofaxes constitutes the minimum number of axes required to position thetool reference point with respect to the workpiece reference point toany position defined within SDOF-dimensional euclidean space andthereafter to rotate the cutting tool about the tool reference point inODOF orthogonal directions. The axes in this set are called "principalhard axes". There may be multiple sets of axes that satisfy thiscriterion, however one of these sets must be chosen in order todifferentiate between hard axes and soft axes. The selection of this setwill have no bearing on the number of soft axes of a machine tool.

Partially Redundant Axis

A linear axis (say A^(n)) is a partially redundant axis if it is anon-collinear axis and satisfies all of the following criteria:

1. A^(n) is not classified as a principal hard axis under the axisclassification rules.

2. The fundamental axis direction vector of A^(n) can be define inSDOF-dimensional euclidean space for all axis vector values within theworking envelope of the machine tool.

A rotary axis (say A^(n)) is a partially redundant axis if it is anon-collinear axis, is not classified as a principal hard axis under theaxis classification rules and satisfies one of the following criteria:

1. The fundamental axis rotation vector of A^(n) is collinear to thefundamental axis rotation vector of one of the rotary axes A^(m)classified as a principal hard axis for all axis vector values withinthe working envelope of the machine tool but the fundamental axisrotation origin vectors for A^(n) and A^(m) are not identical for allaxis vector values within the working envelope or the machine tool.

2. The fundamental axis rotation vector of A^(n) is collinear to theaxis of rotation of a rotating cutting tool for all axis vector valueswithin the working envelope of the machine tool.

A partially redundant axis does not add to the spacial degrees offreedom or the orientation degrees of freedom of the machine tool. ie:the position of the tool reference point with respect to the workpiecereference point or the orientation of the cutting tool cannot bemodified be means of a partially redundant axis in a way that could nototherwise be done by utilizing the machine's other axes. Note: thisdefinition does not concern the axis vector or the joint vector. It onlyconcerns the relative position and orientation of the cutting tool withrespect to the workpiece.

Fully Redundant Axis

A fully redundant axis is an axis that can be included in a collinearset of axes. The inclusion of a fully redundant axis in a CNC does notadd to the programming degrees of freedom (PDOF).

Fully Redundant Hard Axes

An axis of the machine tool that is a fully redundant axes and is acollinear axis to one or more principal hard axes but is not a principalhard axes is called a "fully redundant hard axis".

Partially Redundant Hard Axes

A selection of the machine tool's axes (called the set of "partiallyredundant hard axes") that are neither principal hard axes nor fullyredundant hard axes is made such that the set of hard axes (if no otheraxes were provided) would cause the programmed degrees of freedom (PDOF)to equal the machine degrees of freedom (MDOF) and that the number ofaxes in the set of partially redundant hard axes is the maximumpossible. This implies that if axis A^(n) is a collinear axis to A^(n)and A^(m) is included in this set, then A^(n) is also included in thisset. There may be multiple sets of axes that satisfy these criteria,however one of these sets must be chosen in order to differentiatebetween partially redundant hard axes and soft axes. The selection ofthis set will have no bearing on the number of soft axes of a machinetool.

Soft Axes

An axis of the machine tool that is not a hard axis is called a "softaxis". The set of soft axes may include partially redundant axes andfully redundant axes. If an axis A^(n) is a fully redundant axis and isa collinear axes to A^(n) and A^(n) is a soft axis, then A^(n) is also asoft axis. Soft axes increase PDOF to a number that is greater thanMDOF. Given a machine tool with N axes, if the number of hard axes is Hand the number of soft axes is S (S=N-H), the values of S, N and H donot change, regardless of how the axes are classified according to theabove rules even though the actual axes that are assigned theclassification "soft axis" may be different depending on how theclassification sets are chosen.

Hard Axes

Hard axes are thus defined as the set of axes that includes all of theaxes classified as either; principal hard axes, fully redundant hardaxes or partially redundant hard axes via the axis classification rules.

NOTES:

1. In this specification, the machine tool, its axes, joints, geometryand kinematics are Considered as being precisely mathematicallymodelled: Misalignments and nonlinearities inherent in any "real world"implementation do not effect the fundamental definitions and claims ofthis patent.

2. Axes and joints are considered within this specification as havingunlimited travel.

3. Definitions relating to spacial and orientation degrees of freedommust be considered at axis vector and joint vector values that result inthe maximum possible values of these. The fact that some axis vector orjoint vector values correspond to a reduction in spacial or orientationdegrees of freedom due to the instantaneous alignment of 2 or more axes(or joints) that are not part of the same collinear set or because 1 ormore axes (or joints) is restricted due to physical, electrical orcomputer imposed limits is not relevant.

4. The definitions herein consider machine tools with axes and jointsdesigned to have one workpiece reference point and one tool referencepoint. For machines designed to have multiple concurrent workpiecereference points and/or multiple tool reference points, thesedefinitions should be considered for each logical pair of workpiecereference point and tool reference point.

5. The descriptions herein of axis and joint positions and orientationsdo not consider any clearance or other constraints that may be imposedby the practical application of a machine tool to a specific job.

Referring to FIG. 2, the programmable control unit (PCU) 1 contains apart program which determines the programmed path along which thecutting tool 7 is programmed to move when the machine tool is operatingin automatic mode. The PCU 1 interprets the part program and passes highlevel motion command signals to the trajectory interpolator 2. Thetrajectory interpolator 2 processes the high level motion commands toproduce axis vector values A at a rate of one axis vector value everymachine update period (on average). The trajectory interpolator 2 mayalso process, in known manner, feedrate specification signalsrepresenting an automatic feedrate for the speed of movement of thecutting tool along the programmed path. A novel form of trajectoryinterpolator which also processes an MPG feed specification from amanual pulse generator (MPG) in automatic mode is described in ourco-pending International Application, PCT/AU92/00259 corresponding toU.S. Ser. No. 08/157,033 entitled "Improvements in or relating toComputer Numerically Controlled Machines", the disclosure of which isincorporated herein by reference.

The axis vector values from the trajectory interpolator 2 are inputsequentially to the co-ordinate transform module 3 as current axisvector values A'. The co-ordinate transform module 3 performscalculations based on the current axis vector, the machine's axis matrixA and the machine's joint matrix J in order to produce a joint vectorJ'. This joint vector J' (called the current joint vector) is thenoutput as a signal from the co-ordinate transform module 3 and input tothe position controller 4. The position controller 4 then controls theactuators 11, 12 and 13 to move the joints J¹ to J³, machine members L¹and L² to cause the cutting tool 7 to occupy the desired position on theprogrammed path.

Referring to FIG. 3 of the drawings, there is shown a co-ordinatetransform module 3 for a CNC machine tool having five principal "hard"axes, two partially redundant "soft" axes, and five joints.

The co-ordinate transform module shown in FIG. 3 comprises aprogrammable module 3 and includes a driver preparation module 15, akinematic driver module 16 and a driver debriefing module 17. The driverpreparation module 15 sequentially receives signals representing thecurrent axis vector A' and prepares and passes each signal to thekinematic driver module in the form of component axis positions a¹ toa⁷, where a¹ to a⁵ represent component axis positions of the fiveprincipal "hard" axes, and a⁶ and a⁷ represent component axis positionsof the two "soft" axes. The "soft" axes, as defined above, are partiallyredundant axes or fully redundant axes that have been synthesized byelectronic or computational means of the CPU, with the kinematic drivermodule 16 also being programmed with encoded mathematical kinematicequations of the particular machine tool in terms of both "hard" and"soft" axis positions. This module can be replaced for different machinetools so that the kinematics can be customized for each type of machinetool.

The kinematic driver module 16 may perform the transformation from acurrent axis vector value A' to a joint vector value J' by means of twoprocedural sections. The first section calculates a numerical value forthe position matrix P(A') at the current axis vector based on the axismatrix A: The second section uses equations of the form:

    j.sup.n =f.sub.n (P)

where:

f_(n) (P) is a function of the components of the position matrix P,

for each component joint position j^(n), derived from the equation:

    P=J

where: J is the joint matrix and P is the position matrix, to calculatethe joint positions j^(n) from the numerical value for P calculated fromthe first section. These two sections may be combined into one stage (insimple kinematic machines) where the equations can be represented as:

    j.sup.n =f.sub.n (A)

where: A is the axis vector and f_(n) (A) is a function of thecomponents of A (a¹, a² . . . a^(M)) where M is the number of axes ofthe machine tool.

In the co-ordinate transform module illustrated in FIG. 3, the kinematicdriver module 16 transforms the current axis vector A' with sevencomponent axis positions a¹ to a⁷ into a current joint vector J' havingfive component joint positions j¹ to j⁵ each of which corresponds to oneof the five joints J¹ to J⁵ of the machine tool.

The current joint vector J' then passes through the driver debriefingmodule 17 before being passed to the actuators for the respective jointsJ¹ to J⁵ of the machine.

It will thus be appreciated that the present invention introduces acoordinate transform module which completely detaches the coordinatesystem(s) that the programmer uses from the joint space coordinatesystem that the position controller uses. This allows greaterflexibility in the equations that map the programming coordinates (axes)to joints. In particular, the kinematic driver module allows the valueof soft axes to be included in the axis vector value passed to thecoordinate transform module. Using the axis matrix, joint matrix andposition matrix value allows the correct joint vector to be calculatedthat satisfies the axis vector, even though the axis vector containsredundant information (the soft axis position values).

The present invention also provides the significant advantage that a CNCmachine in accordance with the invention requires less joints than aconventional machine to perform the same function as the conventionalmachine. For instance, whilst this invention is not limited to a CNCmachine having a particular number of joints and soft axes, preferredembodiments of this invention include a 7 axis CNC tool grinder whichcontains 5 joints; a 6 axis CNC cylindrical grinder which contains 4joints; an 8 axis CNC laser cutter that contains 5 joints and an 8 axisCNC milling machine that contains 5 joints. These preferred embodimentswill be described with reference to FIGS. 4 to 8 of the drawings.

Referring to FIGS. 4 and 5, there is shown the workhead 18 and wheelhead19 of a CNC tool grinder having 5 hard axes and 2 soft axes to providethe programmability and flexibility of a full 7 axis machine with theadded advantage of full contouring facilities on all axes whistrequiring only 5 joints.

In the embodiment of FIGS. 4 and 5, the workpiece 6 is rotatably carriedby the workhead 18 which itself is linearly movable in the directions ofaxes X and Y by means of prismatic joints J¹ and J² which connect theworkhead 18 to the base of the machine (not shown).

The wheelhead 19 carries on one end a rotating cutting tool 7 in theform of a grinding wheel, and the other end of the wheelhead 19 isconnected to a column 20 by a prismatic joint J³ which permits verticalmovement of the wheelhead 19 relative to the column 20 in the directionof axis Z. The machine also includes two rotary joints J⁴ and J⁵. Rotaryjoint J⁴ permits rotation of the workpiece about a horizontal rotaryaxis A and rotary joint J⁵ permits rotation of the column about avertical rotary axis C.

The axis layout in FIG. 4 of the machine may be chosen according to theaxis selection rules as:

    ______________________________________                                        Hard Axes                                                                     X       Linear axis (left/right).                                             Y       Linear axis (fore/aft).                                               Z       Linear axis (up/down).                                                A       Rotary axis (horizontal rotation of workhead)                         C       Rotary axis (vertical rotation of wheelhead)                          Soft Axes                                                                     B       Rotary axis (grind point (tool reference point: TRP)                          location on grinding wheel)                                           V       Linear axis (parallel to grinding wheel spindle axis                          of rotation).                                                         ______________________________________                                    

The joint layout for this machine is depicted in FIG. 5:

    ______________________________________                                        J.sup.1  Prismatic joint (left/right linear slide)                            J.sup.2  Prismatic joint (fore/aft linear slide)                              J.sup.3  Prismatic joint (up/down linear slide)                               J.sup.4  Roatary joint (horizontal rotation of workhead)                      J.sup.5  Rotary joint (vertical rotation of column)                           ______________________________________                                    

As can be seen from FIG. 3, the spacial degrees of freedom of thismachine SDOF=3. The orientation degrees of freedom ODOF=2. Since thismachine contains a rotating cutting tool, ODOF cannot equal 3. Axes X, Yand Z are 3 orthogonal linear axes, selected as principal hard axesunder the axis classification rules to provide the SDOF positionaldegrees of freedom. None of the axes are collinear axes, so we are freeto select 2 of the 3 rotary axes as principal hard axes. A and C arearbitrarily chosen to be principal hard axes under the axisclassification rules to provide the ODOF orientation degrees of freedom.The remaining 2 axes B and V, thus are classified as soft axes. Theprogramming degrees of freedom is thus PDOF=SDOF+ODOF+2=7. The machinedegrees of freedom MDOF=number of non-collinear joints=5.

Therefore, by appropriate selection and synthesis of soft axes B and V,the machine tool can be programmed to control relative movement betweenthe workpiece and cutting tool either in the direction of linear axis Vor about rotary axis B. This movement would conventionally require a7-axis machine with specific joints to control movement in the directionof linear axis V or about rotary axis B.

Referring to FIG. 6 of the drawings there is shown a CNC cylindricalgrinder having 4 hard axes and 2 soft axes.

In FIG. 6, a grinding wheel 27 is carried by a wheelhead 29 which islinearly movable in the X and Z directions by prismatic joints J² and J¹respectively. The wheelhead 29 is rotatable about vertical rotary axis Bby means of rotary joint J³ and the workhead 28 is rotatable abouthorizontal rotary axis C by means of rotary joint J⁴.

The axis layout may be chosen according to the axis selection rules as:

    ______________________________________                                        Hard Axes                                                                     X        Linear axis (left/right).                                            Z        Linear axis (fore/aft).                                              B        Rotary axis (vertical rotation of wheelhead)                         C        Roatary axis (horizontal rotation of workhead)                       Soft Axes                                                                     V        Linear axis (perpendicular to grinding wheel                                  spindle axis of rotation).                                           W        Linear axis (parallel to grinding wheel spindle axis                          of rotation).                                                        ______________________________________                                    

By the selection and synthesis of soft axes V and W, the machine tool ofFIG. 6 can be programmed to control movement of the grinding wheel inthe direction of linear axis V or linear axis W. To provide thismovement in conventional machine tools would require specific joints.

Referring to FIG. 7, there is shown a CNC laser cutting machine toolhaving 5 hard axes and 3 soft axes.

The laser cutting machine of FIG. 7 has a laser cutting tool 37 carriedby a toolhead 38 which is movable in the directions of three orthogonalaxes X, Y and Z by means of prismatic joints J¹, J² and J³ respectively.The laser cutting tool 37 is rotatable about a horizontal rotary axis Bby means of rotary joint J⁴ and rotatable about a vertical rotary axis Cby means of rotary joint J⁵.

The axis layout may be chosen according to the axis selection rules as:

    ______________________________________                                        Hard Axes                                                                     X       Linear axis (left/right).                                             Y       Linear axis (fore/aft).                                               Z       Linear axis (up/down).                                                B       Rotary axis (horizontal rotation of laser beam)                       C       Rotary axis (vertical rotation of laser beam)                         Soft Axes                                                                     U       Linear axis (perpendicular to laser beam direction                            and Z axis direction)                                                 V       Linear axis (perpendicular to laser beam direction                            and U axis direction)                                                 W       Linear axis (parallel to laser beam direction)                        ______________________________________                                    

Thus, by the selection and synthesis of soft axes U, V and W, the lasercutting machine tool can be programmed to control movement of the lasercutting tool 37 in the direction of linear axes U, V and W withoutrequiring specific joints for that purpose.

Referring to FIG. 8, there is shown a CNC milling machine having 5 hardaxes and 3 soft axes.

The milling machine of FIG. 8 has a cutting tool 47 carried by atoolhead 49 which is movable in the direction of a vertical axis Z bymeans of prismatic joint J³. The workpiece 46 is mounted on a workpieceholder 48 which is movable in the directions of horizontal axes X and Yby means of prismatic joints J¹ and J² respectively. The cutting tool isrotatable about a horizontal rotary axis B by means of rotary joint J⁵and rotatable about a vertical rotary axis C by means of rotary jointJ⁴.

The axis layout may be chosen according to the axis selection rules as:

    ______________________________________                                        Hard Axes                                                                     X         Linear axis (left/right).                                           Y         Linear axis (fore/aft).                                             Z         Linear axis (up/down).                                              B         Rotary axis (horizontal rotation of cutting tool)                   C         Rotary axis (vertical rotation of cutting tool)                     Soft Axes                                                                     U         Linear axis (perpendicular to cutting tool spindle                            axis of rotation and Z axis direction)                              V         Linear axis (perpendicular to cutting tool spindle                            axis of rotation and U axis direction)                              W         Linear axis (parallel to cutting tool spindle axis                            of rotation)                                                        ______________________________________                                    

Once again, by the selection and synthesis of soft axes U, V and W, thecutting tool 47 of the milling machine can be programmed to controlmovement of the cutting tool 47 in the direction of linear axes U, V andW without requiring specific joints for that purpose.

I claim:
 1. A method of operating a multi-axis CNC machine havingworkpiece mounting means for mounting a workpiece, a cutting tooloperable upon said workpiece, a plurality of machine members and aplurality of controllable joint means movable under the control of themachine to cause relative movement between the cutting tool and theworkpiece mounting means,said method comprising the steps of programmingthe machine with a plurality of principal programmable positioning axeswhich axes constitute the minimum number of axes required to positionthe cutting tool relative to the workpiece mounting moans, andprogramming the machine to control movement of the joint means inaccordance with a part program so as to cause the cutting tool to movealong a programmed path relative to the workpiece mounting the methodfurther comprising the step of programming the machine to synthesize atleast one additional concurrently programmable axis whereby relativemovement of said cutting tool and said workpiece mounting means isautomatically controllable in relation to said additional concurrentlyprogrammable axis in accordance with said part program without physicallocation of said additional concurrently programmable axis by jointmeans.
 2. A method according to claim 1 including the step ofprogramming said at least one synthesized additional concurrentlyprogrammable axis to be non-collinear with said principal programmableaxes
 3. A method according to claim 1 including the step of programmingsaid at least one additional concurrently programmable axis to passthrough a part of the cutting tool and to be fixed relative to thecutting tool.
 4. A method according to claim 1 including the step ofprogramming the machine to synthesize a plurality of additionalconcurrently programmable axes, at least one of said synthesizedadditional concurrently programmable being axes non-collinear with saidprincipal programmable axes.
 5. A method according to claim 4 includingthe step of programming at least one of said synthesized additionalconcurrently programmable axes to pass through a part of the cuttingtool and to be fixed relative to the cutting tool.
 6. A method accordingto claim 1, including the step of programming the machine with a numberof programmable axes greater than the number of joint means of themachine.
 7. A method of operating of multi-axis CNC machine havingworkpiece mounting means for mounting a workpiece: a cutting tooloperable upon said workpiece, a plurality of machine members and aplurality of controllable joint means movable under the control of themachine to cause relative movement between the cubing tool and theworkpiece mounting means, wherein said plurality of joint means includea plurality of linear joints and at least one rotary joint, said methodcomprising the steps of:programming the machine with a plurality ofprogrammable linear axes and at least one programmable rotary axis;programming the machine to control movement of said plurality of jointmeans relative to said programmable axes so as to cause the cutting toolto move along a programmed pall, said programmable linear and rotaryaxes including principal programmable axes constituting the minimumnumber of axes required to position the cutting tool relative to theworkpiece mounting means and at least one additional concurrentlyprogrammable axis; and programming the machine to control movement of atleast one of said joint means relative to said additional concurrentlyprogrammable axis without physical location of said additionalconcurrently programmable axis by said joint means.
 8. A multi-axiscomputer numerically controlled (CNC) machine tool comprising:workpiecemounting means for mounting a workpiece thereon; a cutting tool movablerelative to the workpiece mounting means; a plurality of machinemembers; and a plurality of controllable joint means movable to causethe relative movement between said cutting tool and said workpiecemounting means; and programmable control means programmed to controlautomatically the position and orientation of said plurality of jointmeans in accordance with a part program; the machine tool having aplurality of principal programmable positioning directions or axes whichconstitute tho minimum number of programmable axes required to positionand orientate the cutting tool relative to the workpiece mounting means;wherein the machine tool has at least one synthesized additionalconcurrently programmable axis, and the programmable control means isprogrammed to control movement of said cutting tool or said workpiecemounting means in relation to said at least one additional concurrentlyprogrammable axis in accordance with said pan program without physicallocation of said at least one synthesized additional programmable axisby said joint means.
 9. A multi-axis CNC machine tool according to claim8 wherein said at least one synthesized additional concurrentlyprogrammable axis is non-collinear with said principal programmableaxes.
 10. A multi-axis machine tool according to claim 9 wherein said atleast one synthesized additional programmable axis is arranged to passthrough a part of the cutting tool and is fixed relative to the cuttingtool.
 11. A multi-axis machine tool according to claim 8 wherein themachine is programmed to synthesize a plurality of additionalconcurrently programmable axes, whereby movement of said cutting tool orsaid workpiece mounting means in relation to each one of saidsynthesized additional programmable axes is controllable withoutphysical location of said synthesized additional programmable axes. 12.A multi-axis machine tool according to claim 11, wherein at least one ofsaid plurality of synthesized additional programmable axes isnon-collinear with said principal programmable axes.
 13. A multi-axismachine tool according to claim 12, wherein at least one of saidplurality of synthesized additional programmable axes is arranged topass through a part of said cutting tool and is fixed relative to thecutting tool.
 14. A multi-axis CNC machine tool according to claim 8,wherein the total number of programmable axes is greater than the totalnumber of joint means of the machine.
 15. A multi-axis CNC machine toolaccording to claim 14, wherein the programmable control means isprogrammed to generate axis position signals, each axis position signalrepresenting a desired position for the cutting tool relative to theworkpiece mounting means in terms of components and co-ordinates of theprincipal programmable axes and synthesized additional concurrentprogrammable axes, wherein the machine further includes a co-ordinatetransform module programmed to transform said axis position signals intojoint position signals for controlling the positions of the plurality ofjoint means so as to cause the cutting tool to occupy the desiredposition and orientation relative to the workpiece mounting means.
 16. Amulti-axis CNC machine tool according to claim 15, wherein saidprogrammable axes include linear axis and rotary axes and said pluralityof joint means include linear or prismatic joints and rotary joints. 17.A multi-axis CNC machine tool according to claim 16, wherein the machinehas at least two prismatic joints providing movement in at least twoorthogonal linear axes and at least one rotary joint providing relationabout a rotary axis, the machine being programmed with principalprogrammable axes corresponding to said orthogonal linear axes and saidat least one rotary axis, the machine also being programmed tosynthesize at least one additional concurrently programmable axis.
 18. Amulti-axis CNC machine tool according to claim 17, wherein the machinehas two prismatic joints providing movement in two orthogonal linearaxes and two rotary joints providing rotation about two rotary axes, themachine being programmed with four principal programmable axesrespectively corresponding to said orthogonal linear axes and said tworotary axes, the machine being programmed to synthesize two additionalconcurrently programmable linear axes.
 19. A multi-axis CNC machine toolaccording to claim 18, wherein said two synthesized additionalconcurrently programmable linear axes are in the same plane as the twoprincipal orthogonal linear axes, said additional concurrentlyprogrammable linear axes being non-collinear with said principal linearaxes.
 20. A multi-axis CNC machine tool according to claim 17, whereinthe machine has three prismatic joints providing movement in threeorthogonal linear axes and two rotary joints providing rotation abouttwo rotary axes, the machine being programmed with five principalprogrammable axes respectively corresponding to said three orthogonallinear axes and said two rotary axes, the machine being programmed tosynthesize an additional concurrently programmable linear axis and anadditional concurrently programmable rotary axis.
 21. A multi-axis CNCmachine tool according to claim 17, wherein the machine has threeprismatic joints providing movement in three orthogonal linear axes andtwo rotary joints providing rotation about two rotary axes, the machinebeing programmed with five principal programmable axes respectivelycorresponding to said orthogonal linear axes and said two rotary axes,the machine being programmed to synthesize three additional concurrentlyprogrammable linear axes.
 22. A multi-axis CNC machine tool according toclaim 21, wherein the three additional concurently programmable linearaxes are orthogonal axes, each of which is non-collinear with respect tothe principal orthogonal linear programmable axes.